Fast Fault Injection with Virtual Machines
نویسندگان
چکیده
Fault injection is a widely used technique to test the robustness of software systems and to find bugs in applications. We focus on using fault injection to judge the quality of error handling in applications. Even mature applications have serious bugs in error handling [3]. To find all bugs related to bad error handling when using a certain API one has to do exhaustive fault injection, i.e., to inject all error values found in the API’s specification. When doing exhaustive fault injection one has to do one fault injection experiment per API usage of the application to test. That means one need to run the application once per fault injection. So the run-time of all experiments together grows like O(n) in terms of API usages. One can reduce run-time complexity to O(n) by utilizing snapshots and rollbacks [2, 4]. The idea is to make a snapshot of the application directly before a fault is injected. After the fault injection experiment is finished the application’s state is rolled back to the last snapshot. In this way one can reuse the progress until the fault injection an application has already achieved. Figure 1 illustrates such a single fault injection run. The original fault free execution of the application is bold. The run has 3 API usages. Each API usage is a fault injection point. Due to an API usage, e.g., a function call, can fail for multiple reasons usually more than one fault needs to be injected per fault injection point to do an exhaustive analysis. In the example, at the first and the third fault injection point two faults need to be injected and at the second one three faults. The different faults are derived from the specified error values of the called API functions. In our experiments we are not interested in a complete run after the fault has been injected. It is sufficient to execute a limited number of instructions after injecting the fault, e.g., until the currently executed function returns to its caller. That is why, the runtime complexity is O(n) instead of O(n) when doing each experiment in a separate run. To underpin the complexity issues, we have parsed Figure 1. A fault injection run with 3 fault injection points with 2, 3, and 2 different error values to injection.
منابع مشابه
Challenges and Opportunities with Fault Injection in Virtualized Systems
We analyze: (i) use of virtualization to facilitate fault injection into non-virtualized systems, and (ii) use of fault injection to evaluate the dependability of virtualized systems. With the Xen Virtual Machine Monitor (VMM) as a test case, for (i), we injected thousands of faults into the code, memory, and registers of paravirtualized and fullyvirtualized Virtual Machines (VMs) from within t...
متن کاملHardware Fault Injection with UMLinux
The UMLinux [3] environment provides virtual machines on top of which the Linux operating system and off-the-shelf software is installed. Using UMLinux, you can set up systems consisting of several networked virtual machines. A userfriendly GUI guides you through the process of configuring the virtual hardware. Once the hardware is set up, you can proceed to boot the Linux operating system and ...
متن کاملA New Fast and Accurate Fault Location and Classification Method on MTDC Microgrids Using Current Injection Technique, Traveling-Waves, Online Wavelet, and Mathematical Morphology
In this paper, a new fast and accurate method for fault detection, location, and classification on multi-terminal DC (MTDC) distribution networks connected to renewable energy and energy storages presented. MTDC networks develop due to some issues such as DC resources and loads expanding, and try to the power quality increasing. It is important to recognize the fault type and location in order ...
متن کاملA Genetic Based Resource Management Algorithm Considering Energy Efficiency in Cloud Computing Systems
Cloud computing is a result of the continuing progress made in the areas of hardware, technologies related to the Internet, distributed computing and automated management. The Increasing demand has led to an increase in services resulting in the establishment of large-scale computing and data centers, in addition to high operating costs and huge amounts of electrical power consumption. Insuffic...
متن کاملA Cooperative Approach to Virtual Machine Based Fault Injection
Resilience investigations often employ fault injection (FI) tools to study the effects of simulated errors on a target system. It is important to keep the target system under test (SUT) isolated from the controlling environment in order to maintain control of the experiement. Virtual machines (VMs) have been used to aid these investigations due to the strong isolation properties of system-level...
متن کاملذخیره در منابع من
با ذخیره ی این منبع در منابع من، دسترسی به آن را برای استفاده های بعدی آسان تر کنید
عنوان ژورنال:
دوره شماره
صفحات -
تاریخ انتشار 2007